// 导航守卫
// 全局前置导航守卫 进入任何一个页面组件都会触发
// 路由发生改变时，包括第一次进去页面时
import router from '@/router'
import store from '@/store'
// import { from } from 'core-js/core/array'
import NProgress from 'nprogress'
router.beforeEach((to, from, next) => {
  // console.log(to) 即将要跳转的路由
  // console.log(from) 从哪一个路由跳转
  // console.log(next) 是一个方法，作用：是否放行
  // next()
  NProgress.start()
  // 不要token也能访问的页面
  const whiteList = ['/login', '/404']
  // 先判断路由要跳转的页面是否在白名单里面
  if (whiteList.includes(to.path)) {
    // 如果在就直接放行
    next()
  } else {
    // 如果不在就检查是否携带token
    if (store.state.user.token) {
      // 有token就放行
      next()
    } else {
      // 没有返回到登录页面
      // 往next（）方法里面传一个路径就可以实现重定向
      next('/login')
    }
  }
})
router.afterEach((to, from) => {
  console.log('后置导航守卫')
  setTimeout(() => {
    NProgress.done()
  }, 2000)
})
